package controller;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import model.Carta;
import view.JCartaButton;

public class BaralhoController {

	/**
	 * Retorna um baralho somente de cartas simples. Sem pares.
	 * @param urlImagemVerso
	 * @return
	 */
	public static List<Carta> preencheBaralhoSimples(List<String> urlImagemVerso){
		
		List<Carta> baralho = new ArrayList<Carta>();
		
		for (String s : urlImagemVerso) {
			baralho.add(CartaController.geraCarta(s));
		}
		
		return baralho;
	}
	/**
	 * retorna um baralho somente de cartasButton simples. Sem pares.
	 * @param baralho
	 * @return
	 */
	public static List<JCartaButton> preencheBaralhoButtonSimples(List<Carta> baralho){
		
		List<JCartaButton> baralhoButton = new ArrayList<JCartaButton>();
		
		for (Carta carta : baralho) {
			baralhoButton.add(CartaController.geraCartaButton(carta));
		}
		return baralhoButton;
	}
	
	
	/**
	 * embaralho de um baralho de CartaButton
	 * @param baralhoButton
	 */
	public static void embaralhaCartaButton(List<JCartaButton> baralhoButton){
		
		Collections.shuffle(baralhoButton);
		
	}
	
	public static List<JCartaButton> baralhoButtonCompleto(int tamanho){
		List<String> imagens = obtemImagens();
		List<String> elementos = geraListaElementos(imagens, tamanho);
		List<Carta> baralhoSimples = preencheBaralhoSimples(elementos);
		
		List<JCartaButton> baralhoButtonCompleto = preencheBaralhoButtonSimples(baralhoSimples);		
		baralhoButtonCompleto.addAll(preencheBaralhoButtonSimples(baralhoSimples));
		embaralhaCartaButton(baralhoButtonCompleto);
		
		return baralhoButtonCompleto;
	}
		
		
	public static List<String> obtemImagens(){
		List<String> lista_imagens = new ArrayList<String>();
		for(int i = 1; i < 39; i++){
			lista_imagens.add("icones_variados_64x64/"+i+"_64x64.png");
		}
		return lista_imagens;
	}
	
	public static List<String> geraListaElementos(List<String> list, int tamanho){
		List<String> lista_imagens = new ArrayList<String>();
		for(int i = 0; i < tamanho; i++){
			lista_imagens.add(list.get(i));
		}
		return lista_imagens;
	}
	

}